package com.songlanyun.modules.config.model;

import com.songlanyun.common.drive.ValueObject;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;
import java.math.BigDecimal;

@Data
public class SystemUserRoleConfigDTO implements ValueObject {

    private Integer id;
    /**
     * 前端用户角色名称
     */
    @NotBlank(message = "用户角色名称不能为空")
    private String roleName;
    /**
     * 前端用户角色标记码（固定角色一旦定下了不要改变，可升极的角色可以增加）
     */
    @NotBlank(message = "用户角色标记码不能为空")
    private String roleCode;
    /**
     * 升级模式的角色的等级
     */
    @NotNull(message = "等级不能为空")
    @Max(value = 9999999, message = "升级推荐人数在0-9999999之间")
    private Integer level;
    /**
     * 会员折扣
     */
    @DecimalMin(value = "0.1", message = "折扣最小是0.1")
    @DecimalMax(value = "10.0", message = "折扣最小是10.0")
    private BigDecimal discount;
    /**
     * 消费的阈值
     */
    @DecimalMin(value = "0", message = "消费的阈值最小是0")
    @DecimalMax(value = "9999999", message = "消费的阈值最大9999999")
    private BigDecimal threshold;
    /**
     * 是否是会员可以升级的等级
     */
    @NotNull(message = "是否是会员可以升级的等级不能为空")
    private Integer userGrade;

    /**
     * 升级推荐人数
     */
    @Max(value = 9999999, message = "升级推荐人数在0-9999999之间")
    private Integer upgradeNum;

}
